package com.hjm.project.agentInfo.profitSbOrder.service;

import java.util.List;

import com.hjm.framework.web.domain.AjaxResult;
import java.util.Map;

import com.hjm.project.agentInfo.profitSbOrder.domain.ProfitSbOrder;

/**
 * 分润单号Service接口
 * 
 * @author LOVE
 * @date 2020-11-27
 */
public interface IProfitSbOrderService 
{
    /**
     * 查询分润单号
     * 
     * @param ordernumber 分润单号ID
     * @return 分润单号
     */
    public ProfitSbOrder selectProfitSbOrderById(String ordernumber);

    /**
     * 查询分润单号列表
     * 
     * @param profitSbOrder 分润单号
     * @return 分润单号集合
     */
    public List<ProfitSbOrder> selectProfitSbOrderList(ProfitSbOrder profitSbOrder);

    /**
     * 新增分润单号
     * 
     * @param profitSbOrder 分润单号
     * @return 结果
     */
    public int insertProfitSbOrder(ProfitSbOrder profitSbOrder);

    /**
     * 修改分润单号
     * 
     * @param profitSbOrder 分润单号
     * @return 结果
     */
    public int updateProfitSbOrder(ProfitSbOrder profitSbOrder);

    /**
     * 批量删除分润单号
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteProfitSbOrderByIds(String ids);

    /**
     * 删除分润单号信息
     * 
     * @param ordernumber 分润单号ID
     * @return 结果
     */
    public int deleteProfitSbOrderById(String ordernumber);

    /**
     * 导出审核单详情
     * @param profitSbOrder ProfitSbOrder
     * @return AjaxResult
     */
    AjaxResult exportDetailExcel(ProfitSbOrder profitSbOrder,String createBy) throws Exception;

    /**
     * 获取今日订单号 当天未审核的订单
     *
     * @param params 分润单号
     * @return 分润单号集合
     */
    public List<Map<String,Object>> getDateOrdernumber(Map<String,Object> params);

    /**
     * 未出款数据
     *
     * @param params 分润单号
     * @return 分润单号集合
     */
    public List<Map<String,Object>> getUnPayPageList(Map<String,Object> params);

    public Map<String,Object> getUnPayPageListSum(Map<String,Object> params);

    /**
     * 未出款数据导出
     *
     * @param params 分润单号
     * @return 分润单号集合
     */
    public void getUnPayPageExport(Map<String,Object> params, String addMan);

    /**
     * 保存添加订单
     *
     * @param params
     * @return
     */
    public AjaxResult saveOrder(Map<String,Object> params);

    /**
     * examineAgent
     * @param ordernumber String
     * @return int
     */
    int examineAgent(String ordernumber);

    /**
     * 填单/选择填单
     * @param params
     * @param ids
     * @param type
     */
    public void saveBatchOrder(Map params,String[] ids,int type);

    /**
     * 一键填单
     * @Param [params]
     * @Return void
     */
    public void saveAllOrder(Map params);

    /**
     * 填单/一键填单
     *
     * @param ordernumber
     * @param ids
     * @param type
     * @return
     * @throws Exception
     */
    public int saveBatchOrder(String ordernumber, String[] ids, int type) throws Exception;

    /**
     * 获取订单号信息
     *
     * @param params
     * @return
     */
    public Map<String,Object> getOrderOne(Map<String,Object> params);

    /**
     * 根据ID获取出款数据
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getUnPayListById(Map<String,Object> params);

    /**
     * 保存冻结出款
     * @param ableIds
     * @param paramMap
     * @return
     */
    public AjaxResult saveFrozen(String[] ableIds, Map<String, Object> paramMap);

    /**
     * 审核单
     *
     * @param params 分润单号
     * @return 分润单号集合
     */
    public List<Map<String,Object>> getOrderPageList(Map<String,Object> params);

    /**
     * 订单审核
     *
     * @param params
     * @return
     */
    public Map<String, String> auditOrder(Map params) throws Exception;
    public void auditOrderError(Map params) throws Exception;

    /**
     * 标记成功
     *
     * @param paramMap
     * @return
     */
    public AjaxResult signSuccess(Map<String,Object> paramMap);

    /**
     * 根据订单号获取出款数据
     *
     * @param params
     * @return
     */
    public List<Map<String,Object>> getUnpayListByOrder(Map<String,Object> params);

    /**
     * 标记失败
     *
     * @param paramMap
     * @return
     */
    public AjaxResult saveSignFail(Map<String, Object> paramMap);


    /**
     * 获取订单号信息
     *
     * @param settleSerial
     * @return
     */
    public Map<String,Object> getApAc(String settleSerial);

    /**
     * 同步结算账户信息
     *
     * @param map
     * @return
     */
    public AjaxResult changeAccounts(Map<String, Object> map) throws Exception;
    /**
     * 根据选中出款失败数据id 查询单号
     * @param ids
     * @return
     */
    public List<String> getAllAgentPaidNumber(String[] ids);

    /**
     * 一键转单
     *
     * @param map
     * @return
     */
    public AjaxResult saveTransFo(Map<String, String> map);

    /**
     * 出款解冻
     * @param ableIds
     * @param paramMap
     * @return
     */
    public AjaxResult saveThaw(String[] ableIds, Map<String,Object> paramMap);
    /**
     * 分润返现列表
     * @param params 参数
     * @return 结果
     */
    public List<Map<String,Object>> getCallbackList(Map<String,Object> params);


    public List<Map<String,Object>> getCallbackListSum(Map<String,Object> params);

    Integer exportPayList(Map<String,Object> params);

}
